Las funciones, son modulos de codigo independientes que pueden 
recibir valores de otras funciones, cuando se les haga una llamada
y pueden devolver valores a quien les ha llamado. 
(No es obligatorio ni que reciban ni que envien)

La funcion principal es main, que es donde comienzan los programas.
Su utilizacion es igual que el resto de funciones, pero con la
diferencia, que al enviarle valores sera desde el sistema operativo,
y tambien los valores, los devolver al sistema operativo.

Las funciones deben ser declaradas en el general, despues de los includes.

La declaracion de funciones es asi

datos a devolver funcion(parametros a recibir)

Si no va a devolver datos, se usa void. Lo mismo si no va a
recibir parametros

Ejemplo:

void Funcion(void); 

Si queremos enviarle un entero y que devuelva un entero:

int funcion(int a);

Asi el entero que le enviemos, se llamara a en la funcion y si esta
funcion devuelve un entero, al llamarla llevara a la izquierda un igual
y la variable que este a la izquierda cogera el valor devuelto.

Se puede usar todo tipo de datos para enviar/recibir a/de las funciones

Esa es la declaracion de funciones. Luego habran de ser colocadas
como se coloca el main( osea con sus corchetes y escribiendo 
dentro el codigo que realizen)

Os quiero apuntar, que la orden para devolver valores es return.

return variable;

En el main, el return, se utiliza mas que nada para saber si el programa
se ejecuto correctamente. Generalmente, un programador hace que devuelva
0 si su programa se ejecuto correctamente y otro numero si tuvo
algun problema (el numero sera identificativo del problema)

Ejemplo:

return 0;

Devolveria 0 en una funcion.

Ahora os pongo un codigo fuente con el ejemplo del uso de una funcion.

#include <stdio.h>

int suma(int a,int b);

void main()
{
	int sumando1,sumando2,resultado;
	printf("Mete el primer sumando:\n");
	scanf("%d",&sumando1);
	printf("\nMete el segundo sumando:\n");
	scanf("%d",&sumando2);
	fflush(stdin); //borra el buffer del teclado ;)
	resultado=suma(sumando1,sumando2);
	printf("\nEl resultado fue: %d",resultado);
	getchar();
}

int suma(int a, int b)
{
	int c;
	c=a+b;
	return c;
}

Como dato curioso, para enviar parametros desde el sistema operativo
(ejemplo, cuando pones ping 127.0.0.1 , la ip, es un parametro)
debeis declarar el main de la siguiente forma:

int main(int argc, char * argv[])

argc sera el numero total de argumentos.

argv[0] sera el nombre del exe
argv[1] el primer parametro
ect...

Texto escrito integramente por ]_HQH_[ 

Este texto es de libre distribucion, pero debes citar la fuente http://nuevared.tk

Texto escrito para el curso de programacion basica en C de http://prehackers.com y 
http://nuevared.tk 
